//数组元素和与数字和的绝对差
/*给你一个正整数数组 nums 。

元素和 是 nums 中的所有元素相加求和。
数字和 是 nums 中每一个元素的每一数位（重复数位需多次求和）相加求和。
返回 元素和 与 数字和 的绝对差。

注意：两个整数 x 和 y 的绝对差定义为 |x - y| 。
1 <= nums.length <= 2000
1 <= nums[i] <= 2000
*/
class Solution {
public:
    int differenceOfSum(vector<int>& nums) {
     int sum1=0;
     int sum2=0;
     for(int i=0;i<nums.size();i++)
     {
        sum1+=nums[i];
        while(nums[i])
        {
            sum2+=nums[i]%10;
            nums[i]/=10;
        }
     }   
     return abs(sum1-sum2);
    }
};




// 数组中的字符串匹配
/*给你一个字符串数组 words ，数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。

如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 words[i] ，那么字符串 words[i] 就是 words[j] 的一个子字符串。
1 <= words.length <= 100
1 <= words[i].length <= 30
words[i] 仅包含小写英文字母。
题目数据 保证 每个 words[i] 都是独一无二的。
*/
class Solution {
public:
    vector<string> stringMatching(vector<string>& words) {
        vector<string> arr;
        for (int i = 0; i < words.size(); i++) {
            for (int j = 0; j < words.size(); j++) {
                if (i != j && words[j].find(words[i]) != string::npos)
                    {
                        arr.push_back(words[i]);
                        break;
                    }
            }
        }
        return arr;
    }
};